package frsf.cidisi.exercise.tp2.situationCalculus;

import frsf.cidisi.faia.state.EnvironmentState;


public class EstadoActualIsla extends EnvironmentState {

	
	//TODO: Setup Variables
    private int posicionAgente = 0;
    private int posicionPirata = 0;
    private double[][] tesoros = {{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}};
	private double tesoroPirata = 0;
	private double pesoAcopladoPirata = 0;
	
    public EstadoActualIsla() {
        
		//TODO: Complete Method

        this.initState();
    }

    @Override
    public void initState() {
        //TODO: Complete Method
    	
    	 posicionAgente = 1;
    	 posicionPirata = 11;
    	 
    	 //Escenario 1
    	 tesoros[0][0] = 48650;
    	 tesoros[0][1] = 46.4;
    	 tesoros[1][0] = 16500;
    	 tesoros[1][1] = 14.7;
    	 tesoros[2][0] = 15900;
    	 tesoros[2][1] = 18.5;
    	 tesoros[3][0] = 49600;
    	 tesoros[3][1] = 44.9;
    	 tesoros[4][0] = 40800;
    	 tesoros[4][1] = 36.1;
    	 tesoros[5][0] = 81100;
    	 tesoros[5][1] = 68.1;
    	 tesoros[6][0] = 67850;
    	 tesoros[6][1] = 60.6;
    	 tesoros[7][0] = 98750;
    	 tesoros[7][1] = 92;
    	 tesoros[8][0] = 78450;
    	 tesoros[8][1] = 71.5;
    	 tesoros[9][0] = 93000;
    	 tesoros[9][1] = 84.5;
    	 tesoros[10][0] = 25250;
    	 tesoros[10][1] = 24.5;
    	 
    	 //Escenario 2
//     	 tesoros[0][0] = 115500;
//    	 tesoros[0][1] = 104.5;
//    	 tesoros[1][0] = 82250;
//    	 tesoros[1][1] = 80;
//    	 tesoros[2][0] = 107750;
//    	 tesoros[2][1] = 94.5;
//    	 tesoros[3][0] = 48250;
//    	 tesoros[3][1] = 39;
//    	 tesoros[4][0] = 84250;
//    	 tesoros[4][1] = 80.5;
//    	 tesoros[5][0] = 79000;
//    	 tesoros[5][1] = 72;
//    	 tesoros[6][0] = 61700;
//    	 tesoros[6][1] = 49.1;
//    	 tesoros[7][0] = 30950;
//    	 tesoros[7][1] = 31.6;
//    	 tesoros[8][0] = 82750;
//    	 tesoros[8][1] = 68;
//    	 tesoros[9][0] = 66500;
//    	 tesoros[9][1] = 62;
//    	 tesoros[10][0] = 95250;
//    	 tesoros[10][1] = 87.5;
    	 
   	    
    }


    @Override
    public String toString() {
        String str = "Tesoros = ["+gettesoros()[0][0]+","+gettesoros()[1][0]+","+gettesoros()[2][0]+","+gettesoros()[3][0]+
        						   ","+gettesoros()[4][0]+","+gettesoros()[5][0]+","+gettesoros()[6][0]+","+gettesoros()[7][0]+
        						   ","+gettesoros()[8][0]+","+gettesoros()[9][0]+","+gettesoros()[10][0]+"]"+" PosicionAgente: "+posicionAgente+
        						   "    PosicionPirata: "+posicionPirata;
        
	    
	    //TODO: Complete Method
	    
        return str;
    }
    
    //TODO: Complete this section with agent-specific methods
    // The following methods are agent-specific:
    
   	
     public int getposicionAgente(){
        return posicionAgente;
     }
     public void setposicionAgente(int arg){
        posicionAgente = arg;
     }
     public int getposicionPirata(){
        return posicionPirata;
     }
     public void setposicionPirata(int arg){
        posicionPirata = arg;
     }
     public double[][] gettesoros(){
        return tesoros;
     }
     public void settesoros(double[][] arg){
        tesoros = arg;
     }

	public void setTesoroAldea(int indiceAldea, double tesoro,double peso){
   	   
   		 this.tesoros[indiceAldea][0] = tesoro;
   	     this.tesoros[indiceAldea][1] = peso;
   
    }

	public void setTesoroPirata(double tesoroPirata) {
		this.tesoroPirata = tesoroPirata;
	}

	public double getTesoroPirata() {
		return tesoroPirata;
	}

	public void setPesoAcopladoPirata(double pesoAcopladoPirata) {
		this.pesoAcopladoPirata = pesoAcopladoPirata;
	}

	public double getPesoAcopladoPirata() {
		return pesoAcopladoPirata;
	}


    
}
